package com.service;

import com.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Course的业务层接口
 */
public interface CourseService {

    /**
     * 查询课程信息
     *      当name=null时，查询所有的课程信息
     *          实行分页查询：传入开始的索引和页面大小,当页面大小为0时进行模糊查询
     *          如果role=1时，查询教师授课的课程
     *      当name有值时，进行模糊查询
     * @param name
     * @return
     */
    PageBean findAndSearchCourse(int currentPage,String name,int role,int tid);

    /**
     * 当flag = 1时 , 查询学生已经通过的课程
     * 当flag = 0时 , 查询学生选修的所有课程
     * @param flag
     * @param studentID
     * @return
     */
    PageBean stuFindCourse(int currentPage,int flag,int studentID);
    /**
     * 查询课程总数
     * @return
     */
    int totalCourse(int tid,int role);
    List<SelectCourse> findCourseByName(int id);
    /**
     * 添加课程信息
     * @param course
     */
    String addCourse(Course course);
    /**
     * 删除某课程
     * @param courseID
     */
    void deleteCourse(int courseID);
    /**
     * 通过课程号查询课程信息
     * @param courseID
     * @return
     */
    Course findCourseById(int courseID);
    /**
     * 修改课程信息
     * @param course
     */
    void updateCourse(Course course);
}
